The architecture of choice for today's computing environment is called client/server computing. In this model, the user benefits from the use of an intelligent terminal and is connected to various applications and services by a local area network (LAN). The local area network allows access to expensive resources and peripherals. The client/server model extends sharing to files, data bases and applications and hardware resources. In doing so, each desk top computer accesses a server to get what it needs. When the user updates a record, it is usually the server data base that gets up-dated, so that everybody in a work group is sharing up-to-date information. The design of client/server applications allow users to set up their screens to match specific needs and preferences, yet have the benefits of shared information.
The client/server model is especially powerful in its ability to mix and match machines from different vendors. The user can select the server best suited to a particular task but choose client machines and devices of differing natures from different vendor based on the preferred graphical user interface or other personal parameters such as multi media, et cetera. New servers that are becoming popular include fax servers, e-mail server, voice mail services. Telephony switches are traditionally not designed to fit into the client/server model
Hardware on both the workstation and the server is controlled by a layer of software called an operating system (O/S). The operating system isolates the application from having to know the details of the hardware, and provides a consistent infrastructure on which all applications will run.
One of the key elements of modern application development and design is the concept of an application programmer's interface (API). The API provides a defined interface between various devices or software layers in the computing model so that software developers can focus on their application. In order to achieve this focus, they are provided with the necessary commands that control the device or other applications, without having to know how they work. APIs are relevant to both desk top computer applications as well as server applications. APIs are also an important concept with regard to programming of telephony servers. Most PBXs today support some form of software application programming interfaces (APIs).
In medium size and large businesses, internal telephone calls are handled through a private telephone switch or PBX. While the PBX is in essence a digital electronic device, a natural evolution toward computer telephony integration (CTI) has resulted in the need for connection of PBXs to local area networks so as to function as a network accessible device.
The model used to describe telephone network architectures is quite simple. Users with a terminal device (i.e. a telephone) are connected to a telephony switch which offers a number of services.
The telephone is easily the most recognizable terminal device. It can be analogue or digital, have buttons, displays and can also be wireless. Terminal devices also include fax machines, modems, video phones, alarm systems, LAN equipment and multi media boards for PCs. A terminal device is any piece of hardware that can be attached to the network and can gain access to the PBX. New terminal devices can be added to the network at any time and have immediate access to the range of services with which they are compatible. New services are usually introduced in conjunction with terminal devices design to make the devices easy to use.
The hardware of the PBX is also controlled by an operating system layer of software. The telecom environment has special needs requiring multi user, real time, fault tolerant operating systems. Even the most modem business telephone is a "dumb" set, relaying which button to pushed to the host and turning of the displays as directed.
The heart of a modem switching system is a set of software applications known collectively as call processing. This software provides all of the functionality experienced by the user, from basic call set up to delivering caller ID. The software also provides user features such as call forwarding, enhanced network services such as least call routing and specialized call handling such as ACD for call centres. Call processing is the critical element in designing flexible, configurable, maintainable communication networks.
It is therefore necessary to have software running within the PBX or switch that gives an outside application some control over what is going on. Modern PBX systems provide over two hundred features to improve call handling, although the majority of users never use more than four of them. To offer this, commands are available which activate, suspend or turn off features within the switch. Features include integrated voice response (IVR), voice mail/automated attendant and others.
Moves and changes to the profile of a telephony switch as a result of movements of people within a organization remain difficult to manage. Addressing is complex, with every network element needing to be taken down and re-programmed to change its class of service and class of restriction. One of the goals of modern telecommunications is to provide a PBX system which is not required to be brought "down" every month to make such changes.
For most organizations having large campus environments or complex sites, an architecture is typically implemented that features multiple PBX components distributed throughout the campus or site. These PBX components may be outfitted with network adapter cards and can be connected together over a LAN backbone infrastructure.
One of the existing problems for large sites containing multiple PBXs is management of the components. Many PBXs have custom languages and operating systems. Many telephony switches are not connected to the computer network and even those that are not easy to manage. They are not designed to fit into the client server model. This requires that an administrator be familiar with the switch and switch management interface in order to perform maintenance of features on the switch. In addition, it is common for PBXs to be configured with respect to their internal operation using tables with information regarding the specific features and operations of the switch (i.e. extension numbers, features of the extension, routing, et cetera). An administrator must be familiar with the layout of the features, not only for different versions of the same switch, but also different brands of switches. Moving people and features from one switch to another involves re-programming and in many cases physically visiting or logging on to the switch. There are also difficulties encountered in providing back-up for the switch.